﻿//创建人：zhangrj
//日期：2021-11-21
//描述：热表流水卡页面js

var page = {
    pagetotal: 0,
    pageSize: 10,
    pageNumber: 1,
    rootPath: getRootPath(), //网站根路径
    //初始化页面
    init: function () {
        $('#picker').css("padding", "5px 10px"); //改变上传按钮样式
        page.bind();
        page.customizedPage(); //定制化分页
        page.uploadExcel();
        page.uploadTem();
    },
    //页面事件绑定
    bind: function () {
        //列表加载
        $("#gdRecordInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pagetotal,
                    pageSize: page.pageSize,
                    pageNumber: page.pageNumber
                });
                page.customizedPage('pp'); //定制化分页
                //页码跳转事件
                $('#pageGo').on('click', function () {
                    page.pageNumber = $(this).parents('tr').find('.pagination-num').val();
                    page.search();
                });
            },
            onDblClickCell: function (index, field, value) {//add:Wangjh 20211125
                $(this).datagrid('beginEdit', index);
                var ed = $(this).datagrid('getEditor', { index: index, field: field });
                $(ed.target).focus();
                $(this).datagrid('checkRow', index);
            },
            onClickRow: function (index) {//add:Wangjh 20211125
                $(this).datagrid('acceptChanges')
            },
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
		         { field: 'PRODUCTNAME', title: '件号', width: 200, editor: 'text' },
                 { field: 'SPECNO', title: '工序号', width: 200, editor: 'text' },
                 { field: 'FILENAME', title: '文件名', width: 200, editor: 'text' },
                 { field: 'FILEPATH', title: '查看', width: 200,
                     formatter: function (value, row, index) {
                         if (value != null && value != "") {
                             return "<a href='" + page.rootPath + "/" + value + "' target='_blank'>查看</a>"
                         }
                     }
                 },
                 { field: 'Msg', title: '提示', width: 200,
                     formatter: function (value, row, index) {
                         if (value != null && value != "") {
                             return "<span style='color:red'>" + value + "</span>"
                         }
                     }
                 },
                 { field: 'RBCONTAINERTEMPLATEID', hidden: true }
	             ]]
        });
        //添加行
        $("#btnGridAdd").on('click', function () {
            //列表插入事件
            $("#gdRecordInfo").datagrid('insertRow', {
                index: 0, // index start with 0
                row: {
                    PRODUCTNAME: '',
                    SPECNO: '',
                    FILENAME: '',
                    FILEPATH: '',
                    Msg: '',
                    RBCONTAINERTEMPLATEID: ''
                }
            });
            //            $("#gdRecordInfo").datagrid('beginEdit', 0);
        });
        //删除行
        $("#btnGridDelete").on('click', function () {
            $(this).attr("disabled", "disabled"); //禁用按钮
            var rows = $("#gdRecordInfo").datagrid('getChecked');
            if (rows.length == 0) {
                page.ShowMessage("请选择需要删除的行", false);
                $("#btnGridDelete").removeAttr("disabled"); //恢复按钮
                return;
            }
            var para = [];
            for (var i = 0; i < rows.length; i++) {
                var index = $("#gdRecordInfo").datagrid('getRowIndex', rows[i]);
                $("#gdRecordInfo").datagrid('deleteRow', index);
                if (rows[i].RBCONTAINERTEMPLATEID != "" && rows[i].RBCONTAINERTEMPLATEID != null) {
                    para.push(rows[i]);
                }
            }
            var formData = {};
            formData.action = "Deletes";
            formData.deleTableData = JSON.stringify(para);
            $.ajax({
                url: page.rootPath + '/Ashx/ReBiaoConainer/ReBiaoContainerUploadHandler.ashx',
                type: 'Post',
                data: formData,
                cashe: false,
                success: function (json) {
                    var result = JSON.parse(json);
                    if (result.result) {
                        page.ShowMessage("删除成功", true);
                    }
                    $("#btnGridDelete").removeAttr("disabled"); //恢复按钮
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(XMLHttpRequest.responseText);
                    $("#btnGridDelete").removeAttr("disabled"); //恢复按钮
                }
            });
        });
        //分页事件
        $('#pp').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                page.customizedPage(); //定制化分页
                page.pageSize = pageSize; page.pageNumber = pageNumber;
                page.search();
            }
        });
        //查询按钮事件
        $('#btnSearch').on("click", function () {
            $(this).attr("disabled", "disabled"); //禁用按钮
            page.pageSize = 10; page.pageNumber = 1; //恢复分页数据
            page.search();
            $(this).removeAttr("disabled"); //恢复按钮
        });
        //保存
        $('#btnSave').on("click", function () {
            $('#btnSave').linkbutton('disable'); //禁用按钮
            $("#gdRecordInfo").datagrid('acceptChanges'); //确定所有更改
            var datas = $("#gdRecordInfo").datagrid('getChecked'); //获取所有勾选的行
            if (datas.length == 0) {
                displayMessage2("未选择需要保存的数据", false, ["btnSave"]);
                return;
            }
            for (var i = 0; i < datas.length; i++) {
                var index = $("#gdRecordInfo").datagrid('getRowIndex', datas[i]);
                datas[i].Index = index;
            }
            var formData = {};
            formData.action = "Save";
            formData.tableData = JSON.stringify(datas);
            $.ajax({
                url: page.rootPath + '/Ashx/ReBiaoConainer/ReBiaoContainerUploadHandler.ashx',
                type: 'Post',
                data: formData,
                cashe: false,
                success: function (json) {
                    var result = JSON.parse(json);
                    if (result.result) {
                        page.pageSize = 10; page.pageNumber = 1;
                        page.search();
                        page.ShowMessage("保存成功", true);
                    } else {
                        $.each(result.Data, function (i, item) {
                            $('#gdRecordInfo').datagrid('updateRow', {
                                index: item.Index,
                                row: item
                            });
                        });
                        page.ShowMessage(result.Msg, false);
                    }
                    $("#btnSave").linkbutton('enable'); //恢复按钮
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(XMLHttpRequest.responseText);
                    $("#btnSave").linkbutton('enable'); //恢复按钮
                }
            });
        })
        //下载路径 add:Wangjh 20211126
        $("#btnExtensions").attr("href", page.rootPath + "/extensions/Adobe Flash Player ActiveX 34.0.0.192.exe");
        //下载热表导入模板
        $("#btnRbModel").attr("href", page.rootPath + "/extensions/热表导入模板.xlsx");
    },
    //查询
    search: function () {
        var gridID = "#gdRecordInfo";
        var formData = {
            action: "GetPageList",
            pageSize: page.pageSize,
            pageNumber: page.pageNumber,
            productNo: $('#txtProductNo').textbox('getValue'),
            stepNo: $('#txtStepNo').textbox('getValue')
        };
        $.ajax({
            type: "Post",
            url: page.rootPath + "/Ashx/ReBiaoConainer/ReBiaoContainerUploadHandler.ashx",
            data: formData,
            cashe: false,
            success: function (data) {
                $(gridID).datagrid('loaded');
                var result = JSON.parse(data);
                //给分页对象赋值
                page.pagetotal = result.TotalCount;
                $(gridID).datagrid('loadData', { total: result.TotalCount, rows: result.Data });
                page.ShowMessage("查询完成", true);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
            }
        });
    },
    //定制化分页
    customizedPage: function () {
        var p = $("#pp");
        p.find('table tbody tr td a .l-btn-left .l-btn-text:eq(0)').html('首页 |');
        p.find('table tbody tr td a .l-btn-left .l-btn-text:eq(1)').html('上一页 |');
        p.find('table tbody tr td a .l-btn-left .l-btn-text:eq(2)').html('下一页 |');
        p.find('table tbody tr td a .l-btn-left .l-btn-text:eq(3)').html('尾页 |');
        p.find(".l-btn-icon").text('');
    },
    //上传excel
    uploadExcel: function () {
        var uploader = WebUploader.create({
            // swf文件路径
            swf: page.rootPath + "/Content/webuploader/Uploader.swf",
            // 文件接收服务端。
            server: page.rootPath + '/Ashx/ReBiaoConainer/ReBiaoContainerUploadHandler.ashx',
            // 内部根据当前运行是创建，可能是input元素，也可能是flash.
            pick: '#picker',
            // 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
            resize: false,
            formData: {
                action: "ExcelUpload"
            },
            accept: {
                title: 'Excel',
                extensions: 'xlsx,xls',
                mimeTypes: 'excel/*'
            },
            multiple: false
        });
        //上传
        $('#ctlBtn').on("click", function () {
            var filename = $('#txtExcelFileName').textbox('getValue');
            if (filename == "") {
                page.ShowMessage("未选择文件", false);
            } else {
                $('#ctlBtn').attr("disabled", "disabled"); //禁用按钮
                uploader.upload();
            }
        });
        // 当有文件被添加进队列的时候，每次只传一个文件
        uploader.on('fileQueued', function (file) {
            if ($('#txtExcelFileId').val() != "") {
                var f = uploader.getFile($('#txtExcelFileId').val()); //找到上一次队列中的文件
                uploader.removeFile(f, true); //删除掉上一次队列中的文件
            }
            $('#txtExcelFileName').textbox('setValue', file.name);
            $('#txtExcelFileId').val(file.id);
        });
        //上传成功
        uploader.on('uploadSuccess', function (file, response) {
            page.ShowMessage("", true);
            var result = response;
            if (result.result) {
                //给分页对象赋值，只显示一页
                page.pagetotal = result.TotalCount; page.pageSize = result.TotalCount; page.pageNumber = 1;
                $("#gdRecordInfo").datagrid('loadData', { total: result.TotalCount, rows: result.Data });
                //$('.datagrid-td-rownumber').addClass("EditerRum"); //给表格序号重新赋值高度
                $("#gdRecordInfo").datagrid("checkAll"); //全选
            } else {
                page.ShowMessage(result.Msg, false);
            }
            var f = uploader.getFile(file.id); //找到上传的文件
            uploader.removeFile(f, true); //将其从队列中的删掉
            $('#txtExcelFileName').textbox('setValue', "");
            $('#txtExcelFileId').val("");
            $('#ctlBtn').removeAttr("disabled"); //恢复按钮
        });
        //上传失败
        uploader.on('uploadError', function (file) {
            ShowMessage("上传失败", false);
            var f = uploader.getFile(file.id); //找到上传的文件
            uploader.removeFile(f, true); //将其从队列中的删掉
            $('#txtExcelFileName').textbox('setValue', "");
            $('#txtExcelFileId').val("");
            $('#ctlBtn').removeAttr("disabled"); //恢复按钮
        });
    },
    //上传批次模板
    uploadTem: function () {
        var temUploader = WebUploader.create({
            // swf文件路径
            swf: page.rootPath + "/Content/webuploader/Uploader.swf",
            // 文件接收服务端。
            server: page.rootPath + '/Ashx/UploadFileSave.ashx',
            // 内部根据当前运行是创建，可能是input元素，也可能是flash.
            pick: '#containerTem',
            // 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
            resize: false,
            formData: {
                action: "saveRBConFiles"
            }
        });

        // 当有文件被添加进队列的时候
        temUploader.on('fileQueued', function (file) {
            $('#dlg').dialog('open');
            //thelist
            $("#dlg").append('<div id="' + file.id + '" class="item" style="margin:5px 0">' +
                '<h4 class="info" style="display:inline">' + file.name + '</h4>' +
                '<span class="state">&nbsp;&nbsp;&nbsp;&nbsp;等待上传...</span>' +
                '<button helf="#"  id="TemFileDelete_' + file.id + '" data-id="' + file.id + '" style="margin-left:20px" class="easyui-linkbutton">删除</button>' +
                '</div>');
            //上传文件
            $('#btnContainerTemUpLoad').on("click", function () {
                temUploader.upload();
            });
            //删除文件
            $("#TemFileDelete_" + file.id).on("click", function () {
                var id = $(this).attr("data-id");
                var f = temUploader.getFile(id); //找到队列中的文件
                temUploader.removeFile(f, true); //删除掉队列中的文件
                $("#" + id).remove(); //删除该div
            });
        });
        //关闭弹窗
        $('#dlg').dialog({
            onClose: function () {
                var fs = temUploader.getFiles(); //找到队列中的所有文件
                for (var i = 0; i < fs.length; i++) {
                    var id = fs[i].id;
                    if ($("#" + id).length > 0) {
                        var f = temUploader.getFile(id); //找到队列中的文件
                        temUploader.removeFile(f, true); //删除掉队列中的所有文件
                        $("#" + id).remove(); //删除该div
                    }
                }
            }
        });
        //上传成功
        temUploader.on('uploadSuccess', function (file, response) {
            var f = temUploader.getFile(file.id); //找到队列中的文件
            temUploader.removeFile(f); //删除掉队列中的文件
            $('#' + file.id).remove();
            if ($("#dlg").find(".item").length == 0) {
                $("#dlg").dialog('close');
                page.ShowMessage("上传成功", true);
            }
        });
        //上传失败
        temUploader.on('uploadError', function (file) {
            $("#dlg").dialog('close');
            page.ShowMessage("失败", false);
        });
        //文件上传过程中创建进度条实时显示。
        temUploader.on('uploadProgress', function (file, percentage) {
            page.ShowMessage("上传中", false);

            var $li = $('#' + file.id),
            $percent = $li.find('.progress .progress-bar');

            // 避免重复创建
            if (!$percent.length) {
                $percent = $('<div class="progress progress-striped active">' +
            '<div class="progress-bar" role="progressbar" style="width: 0%">' +
            '</div>' +
            '</div>').appendTo($li).find('.progress-bar');
            }

            $li.find('p.state').text('上传中');

            $percent.css('width', percentage * 100 + '%');
        });
    },
    //显示消息提示
    ShowMessage: function (msg, istrue) {
        displayMessage(msg, istrue);
    }
};
page.init();
 